﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using MuscleFellow.Models;

namespace MuscleFellow.Data.Interfaces
{
    public interface IProductRepository
    {
        //异步方式获得全部商品
        Task<List<Product>> GetAllAsync();
        //异步方式向数据源添加一个商品实体
        Task<Guid> AddAsync(Product product);
        //根据商品ID，异步方式从数据源中删除指定商品
        Task DeleteAsync(Guid productID);
        //根据给定的条件和分页设置，返回符合条件的商品业务实体
        Task<IEnumerable<Product>> GetProductsAsync(string filter, int pageSize, int pageCount);
        //根据指定的商品ID，从数据库中获取业务实体
        Task<Product> GetAsync(Guid productID);
        //按照修改时间倒序排序，返回商品的业务实体
        Task<IEnumerable<Product>> GetPopularProductsAsync(int count);
        //异步方式更新指定商品的信息
        Task<Guid> UpdateAsync(Product product);

    }
}